package com.whsxt.mapper;

import com.whsxt.domain.Permission;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface PermissionMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Permission record);

    int insertSelective(Permission record);

    Permission selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Permission record);

    int updateByPrimaryKey(Permission record);

    /**
     * 通过类型查询所有的权限
     * @param types
     * @return
     */
    List<Permission> selectAll(@Param("types") List<Integer> types);

    /**
     * 通过权限的id 查询个数
     * @param pid
     * @return
     */
    int selectCountByPid(@Param("pid") Integer pid);

    /**
     * 通过角色id查询权限
     * @param roleId
     * @return
     */
    List<Integer> selectPermsByRoleId(@Param("roleId") Integer roleId);

    /**
     * 通过用户id查询用户所拥有的权限
     * @param userId
     * @param types
     * @return
     */
    List<Permission> selectPermsByUserId(@Param("userId") Integer userId, @Param("types") List<Integer> types);

    /**
     * 通过权限标识查询权限的个数
     * @param tag
     * @return
     */
    int selectCountByTag(@Param("tag") String tag);

}